Public Partial Class FrmCuentaABM
    Inherits System.Web.UI.Page
    Public Banco As CapaDeNegocios.nBanco = New CapaDeNegocios.nBanco
    Public Cuenta As CapaDeNegocios.nCuenta = New CapaDeNegocios.nCuenta
    Public Comprobacion As CapaDeNegocios.nComprobaciones = New CapaDeNegocios.nComprobaciones
    
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Session("Login") = "Anonimo" Then
            Response.Redirect("/")
        End If
        If Not Page.IsPostBack Then
            LLenarComboBanco()
            LLenarGridCuenta()
            LblError.Visible = False
        End If
    End Sub
    Sub LLenarComboBanco()
        CboBanco.DataSource = Banco.ListarBanco(0, "", 1)
        CboBanco.DataTextField = "Denominacion"
        CboBanco.DataValueField = "CodigoBanco"
        CboBanco.DataBind()
    End Sub
    Sub LimpiarFormulario()
        CboBanco.SelectedIndex = -1
        CboCuenta.SelectedIndex = -1
        TxtNumeroCuenta.Text = ""
        TxtNumero2.Text = ""
        txtNumero3.Text = ""
        TxtNumero4.Text = ""
        TxtNumeroCuenta.Text = "0000"
        TxtNumero2.Text = "0000"
        txtNumero3.Text = "00"
        TxtNumero4.Text = "0000000"
        CboChequera.SelectedIndex = -1
        GridCuenta.SelectedIndex = -1
        HFCuenta.Value = ""
        CboChequera.Enabled = True
        LLenarGridCuenta()
        LblError.Visible = False
        LblError.Text = ""
    End Sub
    Sub LLenarGridCuenta()
        Dim Numero As String
        Dim CodCuenta As Integer

        If HFCuenta.Value = "" Then
            CodCuenta = 0
        Else
            CodCuenta = CInt(HFCuenta.Value)
        End If
        If Trim(TxtNumeroCuenta.Text) <> "" Then
            Numero = Trim(TxtNumeroCuenta.Text)
        Else
            Numero = 0
        End If
        Dim Banco As Integer
        If CboBanco.Text <> "-1" Then
            Banco = CboBanco.SelectedValue.ToString()
        Else
            Banco = 0
        End If
        Dim VarCuenta As String
        If CboCuenta.SelectedItem.Text() <> "Ninguno" Then
            VarCuenta = CboCuenta.SelectedValue.ToString()
        Else
            VarCuenta = ""
        End If
        Dim Cheque As String
        If CboChequera.SelectedItem.Text() <> "Ninguno" Then
            Cheque = CboChequera.SelectedValue.ToString()
        Else
            Cheque = ""
        End If
        GridCuenta.DataSource = Cuenta.ListarTodos(CodCuenta, "", VarCuenta, Banco, Cheque)
        GridCuenta.DataBind()
    End Sub

    Protected Sub LinkGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkGuardar.Click
        Dim Cont As Integer
        Cont = 0
        LblError.Visible = False
        LblError.Text = ""
        If Not IsNumeric(TxtNumeroCuenta.Text) Then
            LblError.Text = "Error, el Codigo de Banco debe ser numerico"
            Cont = Cont + 1
        Else
            If TxtNumeroCuenta.Text = 0 Then
                LblError.Text = LblError.Text + "-Error, el Banco no puede ser cero"
                Cont = Cont + 1
            End If

        End If
        If CboCuenta.SelectedItem.Text = "Ninguno" Then
            LblError.Text = LblError.Text + "-Error, la cuenta no es Correcta"
            Cont = Cont + 1
        End If
        If Not IsNumeric(TxtNumero2.Text) Then
            LblError.Text = LblError.Text + "-Error, el codigo de sucursal debe ser numerico"
            Cont = Cont + 1
        Else
            If TxtNumero2.Text = 0 Then
                LblError.Text = LblError.Text + "-Error, la sucursal no puede ser cero"
                Cont = Cont + 1
            End If
        End If
        
        If Not IsNumeric(txtNumero3.Text) Then
            LblError.Text = LblError.Text + "-Error, el numero de control debe ser numerico"
            Cont = Cont + 1
        Else
            If txtNumero3.Text = 0 Then
                LblError.Text = LblError.Text + "-Error, el numero de control no puede ser cero"
                Cont = Cont + 1
            End If
        End If
        
        If Not IsNumeric(TxtNumero4.Text) Then
            LblError.Text = LblError.Text + "-Error, la cuenta debe ser numerica"
            Cont = Cont + 1
        Else
            If TxtNumero4.Text = 0 Then
                LblError.Text = LblError.Text + "-Error, la cuenta no puede ser cero"
                Cont = Cont + 1
            End If
        End If
        If Comprobacion.FN_CantCaracteres(TxtNumeroCuenta.Text, 4) = False Then
            LblError.Text = LblError.Text + "-Error, el Codigo de Banco debe tener 4 numeros"
            Cont = Cont + 1
        End If
        If Comprobacion.FN_CantCaracteres(TxtNumero2.Text, 4) = False Then
            LblError.Text = LblError.Text + "-Error, la sucursal debe tener 4 caracteres"
            Cont = Cont + 1
        End If
        If Comprobacion.FN_CantCaracteres(txtNumero3.Text, 2) = False Then
            LblError.Text = LblError.Text + "-Error, el numero de control debe tener 2 caracteres"
            Cont = Cont + 1
        End If
        If Comprobacion.FN_CantCaracteres(TxtNumero4.Text, 7) = False Then
            LblError.Text = LblError.Text + "-Error, la cuenta debe tener 10 caracteres"
            Cont = Cont + 1
        End If
        If CboCuenta.SelectedValue.ToString() = "Ninguno" Then
            LblError.Text = LblError.Text + "-Error, la cuenta debe tener un tipo"
            Cont = Cont + 1
        End If
        If CboChequera.SelectedValue.ToString() = "Ninguno" Then
            LblError.Text = LblError.Text + "-Error, la chequera debe ser diferente"
            Cont = Cont + 1
        End If

        Dim Estado As String
        If HFCuenta.Value = "" Then
            Dim NumeroCuenta As String
            If Cont = 0 Then
                NumeroCuenta = TxtNumeroCuenta.Text & "/" & TxtNumero2.Text & "/" & txtNumero3.Text & "/" & TxtNumero4.Text
                If CboChequera.SelectedValue.ToString() = "Ninguno" And CboCuenta.SelectedValue.ToString() = "Caja de Ahorro" Then
                    Estado = "No"
                Else
                    Estado = "Si"
                End If
                If Cuenta.InsertarCuenta(NumeroCuenta, CboCuenta.SelectedValue.ToString(), _
                    CboBanco.SelectedValue.ToString(), estado) Then
                    Me.Response.Write("<script languaje='javascript'>window.alert('Se realizo el Alta con exito')</script>")
                    LimpiarFormulario()
                Else
                    LblError.Text = "Error,no se pudo realizar el Alta"
                    LblError.Visible = True
                End If
            Else
                LblError.Visible = True
            End If
        Else
            If Cont = 0 Then
                Dim NumeroCuenta As String
                NumeroCuenta = TxtNumeroCuenta.Text & "/" & TxtNumero2.Text & "/" & txtNumero3.Text & "/" & TxtNumero4.Text
                If CboChequera.SelectedValue.ToString() = "No" And (CboCuenta.SelectedValue.ToString() = "Caja de Ahorro" _
                Or CboCuenta.SelectedItem.Text = "Ninguno") Then
                    Estado = "No"
                Else
                    Estado = "Si"
                End If
                If Cuenta.ModificarCuenta(Int(HFCuenta.Value), (NumeroCuenta), _
                CboCuenta.SelectedValue.ToString(), CboBanco.SelectedValue.ToString(), _
                Estado) Then
                    Me.Response.Write("<script languaje='javascript'>window.alert('La modificacion se realizo con exito')</script>")
                    LimpiarFormulario()
                Else
                    LblError.Text = "Error,no se pudo realizar la Modificacion"
                    LblError.Visible = True
                End If
            Else
                LblError.Visible = True
            End If
        End If
    End Sub

    Protected Sub LinkEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkEliminar.Click
        If HFCuenta.Value <> "" Then
            If Cuenta.EliminarCuenta(Int(HFCuenta.Value)) Then
                Me.Response.Write("<script languaje='javascript'>window.alert('Se Realizo la eliminacion')</script>")
                LimpiarFormulario()
            End If
        Else
            Me.Response.Write("<script languaje='javascript'>window.alert('No selecciono elementos')</script>")
        End If

    End Sub

    Protected Sub LinkCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkCancelar.Click
        LimpiarFormulario()
    End Sub

    Protected Sub GridCuenta_RowCommand(ByVal sender As System.Object, ByVal e As System.Web.UI.WebControls.GridViewCommandEventArgs) Handles GridCuenta.RowCommand
        If e.CommandName = "Select" Then
            TxtNumeroCuenta.Text = (e.CommandSource.parent.FindControl("LblCuenta").text).substring(0, 4)
            TxtNumero2.Text = (e.CommandSource.parent.FindControl("LblCuenta").text).substring(5, 4)
            txtNumero3.Text = (e.CommandSource.parent.FindControl("LblCuenta").text).substring(6, 2)
            TxtNumero4.Text = (e.CommandSource.parent.FindControl("LblCuenta").text).substring(13, 7)
            HFCuenta.Value = e.CommandSource.parent.parent.FindControl("HFCodigCuenta").value
            If Trim(e.CommandSource.parent.FindControl("LblTipo").text) = "Cuenta Corriente" Then
                CboChequera.Text = "Si"
                CboChequera.Enabled = True
            Else
                CboChequera.Text = "No"
                CboChequera.Enabled = False
            End If
            If Trim(e.CommandSource.parent.parent.Findcontrol("LblTipo").text) = "Caja de Ahorro" Then
                CboCuenta.Text = "Caja de Ahorro"
            Else
                CboCuenta.Text = "Cuenta Corriente"
            End If
            CboBanco.SelectedValue = e.CommandSource.parent.parent.Findcontrol("HFBanco").value
        End If
    End Sub

  
    Protected Sub CboCuenta_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CboCuenta.SelectedIndexChanged
        If CboCuenta.SelectedValue.ToString() = "Caja de Ahorro" Then
            CboChequera.Enabled = False
            CboChequera.SelectedIndex = -1
        Else
            CboChequera.Enabled = True
        End If
    End Sub

    Protected Sub LinkBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles LinkBuscar.Click
        LLenarGridCuenta()
    End Sub
End Class